import json

from funcall.AbstractFunCall import AbstractFunCall


class get_current_weather_fun_call(AbstractFunCall):
    def __init__(self):
        self.name = "get_current_weather"
        self.description="当你想查询指定城市的天气时非常有用。"
        self.parameters={
                "type": "object",
                "properties": {
                    # 查询天气时需要提供位置，因此参数设置为location
                    "location": {
                        "type": "string",
                        "description": "城市或县区，比如北京市、杭州市、余杭区等。"
                    }
                }
            }
        self.required=[
                "location"
            ]


    def action(self, jsonRoot):
        return f"{jsonRoot['location']}今天是雨天。 "

if __name__ == '__main__':
    # 创建一个GetCurrentWeatherFunCall对象
    cw = get_current_weather_fun_call()

    # 调用GetCurrentWeatherFunCall对象的call方法
    args={"location": "北京"}
    result = cw.call(args)
    result = cw.call("""{"location":"北京"}""")

    # 打印结果
    print(result)